In order to replace GTK+'s GtkPolicyType. It's bit-compatible with it, too.
All callers have been updated to use it.
This is a purely accessory change in terms of X11 Display usage cleanup,
but helps see better what is left.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/317
var UserList = class {
constructor() {
this.actor = new St.ScrollView({ style_class: 'login-dialog-user-list-view'});
- this.actor.set_policy(Gtk.PolicyType.NEVER,
- Gtk.PolicyType.AUTOMATIC);
+ this.actor.set_policy(St.PolicyType.NEVER,
+ St.PolicyType.AUTOMATIC);
this._box = new St.BoxLayout({ vertical: true,
style_class: 'login-dialog-user-list',
this._bannerView = new St.ScrollView({ style_class: 'login-dialog-banner-view',
opacity: 0,
- vscrollbar_policy: Gtk.PolicyType.AUTOMATIC,
- hscrollbar_policy: Gtk.PolicyType.NEVER });
+ vscrollbar_policy: St.PolicyType.AUTOMATIC,
+ hscrollbar_policy: St.PolicyType.NEVER });
this.add_child(this._bannerView);
let bannerBox = new St.BoxLayout({ vertical: true });
x_expand:true, y_expand:true });
this.actor.add_actor(this._scrollView);
- this._scrollView.set_policy(Gtk.PolicyType.NEVER,
- Gtk.PolicyType.EXTERNAL);
+ this._scrollView.set_policy(St.PolicyType.NEVER,
+ St.PolicyType.EXTERNAL);
this._adjustment = this._scrollView.vscroll.adjustment;
this._pageIndicators = new PageIndicators();
this._grid.x_expand = true;
this.actor = new St.ScrollView({ overlay_scrollbars: true });
- this.actor.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
+ this.actor.set_policy(St.PolicyType.NEVER, St.PolicyType.AUTOMATIC);
let scrollableContainer = new St.BoxLayout({ vertical: true, reactive: true });
scrollableContainer.add_actor(this._grid);
this.actor.add_actor(scrollableContainer);
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
-const Gtk = imports.gi.Gtk;
const St = imports.gi.St;
const Signals = imports.signals;
const Shell = imports.gi.Shell;
overlay_scrollbars: true,
x_expand: true, y_expand: true,
x_fill: true, y_fill: true });
- this._scrollView.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
+ this._scrollView.set_policy(St.PolicyType.NEVER, St.PolicyType.AUTOMATIC);
box.add_actor(this._scrollView);
this._clearButton = new St.Button({ style_class: 'message-list-clear-button button',
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
-const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
});
this._scrollArea = new St.ScrollView({ style_class: 'chat-scrollview vfade',
- vscrollbar_policy: Gtk.PolicyType.AUTOMATIC,
- hscrollbar_policy: Gtk.PolicyType.NEVER,
+ vscrollbar_policy: St.PolicyType.AUTOMATIC,
+ hscrollbar_policy: St.PolicyType.NEVER,
visible: this.expanded });
this._contentArea = new St.BoxLayout({ style_class: 'chat-body',
vertical: true });
const Gio = imports.gi.Gio;
const GnomeDesktop = imports.gi.GnomeDesktop;
const GObject = imports.gi.GObject;
-const Gtk = imports.gi.Gtk;
const GWeather = imports.gi.GWeather;
const Mainloop = imports.mainloop;
const Pango = imports.gi.Pango;
this._displaysSection = new St.ScrollView({ style_class: 'datemenu-displays-section vfade',
x_expand: true, x_fill: true,
overlay_scrollbars: true });
- this._displaysSection.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
+ this._displaysSection.set_policy(St.PolicyType.NEVER, St.PolicyType.AUTOMATIC);
vbox.add_actor(this._displaysSection);
let displaysBox = new St.BoxLayout({ vertical: true,
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
-const Gtk = imports.gi.Gtk;
const Pango = imports.gi.Pango;
const Polkit = imports.gi.Polkit;
const St = imports.gi.St;
messageLayout.add(this._batteryWarning);
this._scrollView = new St.ScrollView({ style_class: 'end-session-dialog-list' });
- this._scrollView.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
+ this._scrollView.set_policy(St.PolicyType.NEVER, St.PolicyType.AUTOMATIC);
this.contentLayout.add(this._scrollView,
{ x_fill: true,
y_fill: true });
// with long content, we make it scrollable - the scrollbar will only take
// effect if a CSS max-height is set on the top menu.
this.actor = new St.ScrollView({ style_class: 'popup-sub-menu',
- hscrollbar_policy: Gtk.PolicyType.NEVER,
- vscrollbar_policy: Gtk.PolicyType.NEVER });
+ hscrollbar_policy: St.PolicyType.NEVER,
+ vscrollbar_policy: St.PolicyType.NEVER });
this.actor.add_actor(this.box);
this.actor._delegate = this;
// when we *don't* need it, so turn off the scrollbar when that's true.
// Dynamic changes in whether we need it aren't handled properly.
this.actor.vscrollbar_policy =
- needsScrollbar ? Gtk.PolicyType.AUTOMATIC : Gtk.PolicyType.NEVER;
+ needsScrollbar ? St.PolicyType.AUTOMATIC : St.PolicyType.NEVER;
if (needsScrollbar)
this.actor.add_style_pseudo_class('scrolled');
style_class: 'screen-shield-notifications-container' });
this._scrollView = new St.ScrollView({ x_fill: false, x_align: St.Align.START,
- hscrollbar_policy: Gtk.PolicyType.NEVER });
+ hscrollbar_policy: St.PolicyType.NEVER });
this._notificationBox = new St.BoxLayout({ vertical: true,
style_class: 'screen-shield-notifications-container' });
this._scrollView.add_actor(this._notificationBox);
// block scrollbars while animating, if they're not needed now
let boxHeight = this._notificationBox.height;
if (this._scrollView.height >= boxHeight)
- this._scrollView.vscrollbar_policy = Gtk.PolicyType.NEVER;
+ this._scrollView.vscrollbar_policy = St.PolicyType.NEVER;
let widget = obj.sourceBox;
let [, natHeight] = widget.get_preferred_height(-1);
transition: 'easeOutQuad',
time: 0.25,
onComplete() {
- this._scrollView.vscrollbar_policy = Gtk.PolicyType.AUTOMATIC;
+ this._scrollView.vscrollbar_policy = St.PolicyType.AUTOMATIC;
widget.set_height(-1);
},
onCompleteScope: this
y_fill: false,
overlay_scrollbars: true,
style_class: 'search-display vfade' });
- this._scrollView.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
+ this._scrollView.set_policy(St.PolicyType.NEVER, St.PolicyType.AUTOMATIC);
this._scrollView.add_actor(scrollChild);
let action = new Clutter.PanAction({ interpolate: true });
action.connect('pan', this._onPan.bind(this));
const Signals = imports.signals;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
-const Gtk = imports.gi.Gtk;
const Pango = imports.gi.Pango;
const St = imports.gi.St;
const Shell = imports.gi.Shell;
this.contentLayout.add(this._content, { x_fill: true, y_fill: false });
let scrollView = new St.ScrollView({ style_class: 'mount-dialog-app-list'});
- scrollView.set_policy(Gtk.PolicyType.NEVER,
- Gtk.PolicyType.AUTOMATIC);
+ scrollView.set_policy(St.PolicyType.NEVER,
+ St.PolicyType.AUTOMATIC);
this.contentLayout.add(scrollView,
{ x_fill: true,
y_fill: true });
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
const Gio = imports.gi.Gio;
-const Gtk = imports.gi.Gtk;
const Mainloop = imports.mainloop;
const NM = imports.gi.NM;
const Signals = imports.signals;
this._scrollView = new St.ScrollView({ style_class: 'nm-dialog-scroll-view' });
this._scrollView.set_x_expand(true);
this._scrollView.set_y_expand(true);
- this._scrollView.set_policy(Gtk.PolicyType.NEVER,
- Gtk.PolicyType.AUTOMATIC);
+ this._scrollView.set_policy(St.PolicyType.NEVER,
+ St.PolicyType.AUTOMATIC);
this._scrollView.add_actor(this._itemBox);
this._stack.add_child(this._scrollView);
const Clutter = imports.gi.Clutter;
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
-const Gtk = imports.gi.Gtk;
const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
this._scrollView = new St.ScrollView({ style_class: 'hfade',
enable_mouse_scrolling: false });
- this._scrollView.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER);
+ this._scrollView.set_policy(St.PolicyType.NEVER, St.PolicyType.NEVER);
this._scrollView.add_actor(this._list);
this.add_actor(this._scrollView);
* detailed description of the considerations involved.
*/
+#include "st-enum-types.h"
#include "st-scroll-view.h"
#include "st-scroll-bar.h"
#include "st-scrollable.h"
StAdjustment *vadjustment;
ClutterActor *vscroll;
- GtkPolicyType hscrollbar_policy;
- GtkPolicyType vscrollbar_policy;
+ StPolicyType hscrollbar_policy;
+ StPolicyType vscrollbar_policy;
gfloat row_size;
gfloat column_size;
switch (priv->hscrollbar_policy)
{
- case GTK_POLICY_NEVER:
+ case ST_POLICY_NEVER:
min_width = child_min_width;
break;
- case GTK_POLICY_ALWAYS:
- case GTK_POLICY_AUTOMATIC:
- case GTK_POLICY_EXTERNAL:
+ case ST_POLICY_ALWAYS:
+ case ST_POLICY_AUTOMATIC:
+ case ST_POLICY_EXTERNAL:
/* Should theoretically use the min width of the hscrollbar,
* but that's not cleanly defined at the moment */
min_width = 0;
switch (priv->vscrollbar_policy)
{
- case GTK_POLICY_NEVER:
- case GTK_POLICY_EXTERNAL:
+ case ST_POLICY_NEVER:
+ case ST_POLICY_EXTERNAL:
account_for_vscrollbar = FALSE;
break;
- case GTK_POLICY_ALWAYS:
+ case ST_POLICY_ALWAYS:
account_for_vscrollbar = !priv->overlay_scrollbars;
break;
- case GTK_POLICY_AUTOMATIC:
+ case ST_POLICY_AUTOMATIC:
/* For automatic scrollbars, we always request space for the vertical
* scrollbar; we won't know whether we actually need one until our
* height is assigned in allocate().
switch (priv->vscrollbar_policy)
{
- case GTK_POLICY_NEVER:
- case GTK_POLICY_EXTERNAL:
+ case ST_POLICY_NEVER:
+ case ST_POLICY_EXTERNAL:
break;
- case GTK_POLICY_ALWAYS:
- case GTK_POLICY_AUTOMATIC:
+ case ST_POLICY_ALWAYS:
+ case ST_POLICY_AUTOMATIC:
/* We've requested space for the scrollbar, subtract it back out */
for_width -= sb_width;
break;
switch (priv->hscrollbar_policy)
{
- case GTK_POLICY_NEVER:
- case GTK_POLICY_EXTERNAL:
+ case ST_POLICY_NEVER:
+ case ST_POLICY_EXTERNAL:
account_for_hscrollbar = FALSE;
break;
- case GTK_POLICY_ALWAYS:
+ case ST_POLICY_ALWAYS:
account_for_hscrollbar = !priv->overlay_scrollbars;
break;
- case GTK_POLICY_AUTOMATIC:
+ case ST_POLICY_AUTOMATIC:
/* For automatic scrollbars, we always request space for the horizontal
* scrollbar; we won't know whether we actually need one until our
* width is assigned in allocate().
switch (priv->vscrollbar_policy)
{
- case GTK_POLICY_NEVER:
+ case ST_POLICY_NEVER:
min_height = child_min_height;
break;
- case GTK_POLICY_ALWAYS:
- case GTK_POLICY_AUTOMATIC:
- case GTK_POLICY_EXTERNAL:
+ case ST_POLICY_ALWAYS:
+ case ST_POLICY_AUTOMATIC:
+ case ST_POLICY_EXTERNAL:
/* Should theoretically use the min height of the vscrollbar,
* but that's not cleanly defined at the moment */
min_height = 0;
clutter_actor_get_preferred_width (priv->child, -1,
&child_min_width, NULL);
- if (priv->vscrollbar_policy == GTK_POLICY_AUTOMATIC)
+ if (priv->vscrollbar_policy == ST_POLICY_AUTOMATIC)
{
- if (priv->hscrollbar_policy == GTK_POLICY_AUTOMATIC)
+ if (priv->hscrollbar_policy == ST_POLICY_AUTOMATIC)
{
/* Pass one, try without a vertical scrollbar */
clutter_actor_get_preferred_height (priv->child, avail_width, &child_min_height, NULL);
}
else
{
- hscrollbar_visible = priv->hscrollbar_policy == GTK_POLICY_ALWAYS;
+ hscrollbar_visible = priv->hscrollbar_policy == ST_POLICY_ALWAYS;
/* try without a vertical scrollbar */
clutter_actor_get_preferred_height (priv->child, avail_width, &child_min_height, NULL);
}
else
{
- vscrollbar_visible = priv->vscrollbar_policy == GTK_POLICY_ALWAYS;
+ vscrollbar_visible = priv->vscrollbar_policy == ST_POLICY_ALWAYS;
- if (priv->hscrollbar_policy == GTK_POLICY_AUTOMATIC)
+ if (priv->hscrollbar_policy == ST_POLICY_AUTOMATIC)
hscrollbar_visible = child_min_width > avail_height - (vscrollbar_visible ? 0 : sb_width);
else
- hscrollbar_visible = priv->hscrollbar_policy == GTK_POLICY_ALWAYS;
+ hscrollbar_visible = priv->hscrollbar_policy == ST_POLICY_ALWAYS;
}
}
else
{
- hscrollbar_visible = priv->hscrollbar_policy != GTK_POLICY_NEVER &&
- priv->hscrollbar_policy != GTK_POLICY_EXTERNAL;
- vscrollbar_visible = priv->vscrollbar_policy != GTK_POLICY_NEVER &&
- priv->vscrollbar_policy != GTK_POLICY_EXTERNAL;
+ hscrollbar_visible = priv->hscrollbar_policy != ST_POLICY_NEVER &&
+ priv->hscrollbar_policy != ST_POLICY_EXTERNAL;
+ vscrollbar_visible = priv->vscrollbar_policy != ST_POLICY_NEVER &&
+ priv->vscrollbar_policy != ST_POLICY_EXTERNAL;
}
/* Whether or not we show the scrollbars, if the scrollbars are visible
* Fold this into the scrollbar sizes to simplify the rest of the
* computations.
*/
- if (priv->hscrollbar_policy == GTK_POLICY_NEVER ||
- priv->hscrollbar_policy == GTK_POLICY_EXTERNAL ||
+ if (priv->hscrollbar_policy == ST_POLICY_NEVER ||
+ priv->hscrollbar_policy == ST_POLICY_EXTERNAL ||
priv->overlay_scrollbars)
sb_height = 0;
- if (priv->vscrollbar_policy == GTK_POLICY_NEVER ||
- priv->vscrollbar_policy == GTK_POLICY_EXTERNAL ||
+ if (priv->vscrollbar_policy == ST_POLICY_NEVER ||
+ priv->vscrollbar_policy == ST_POLICY_EXTERNAL ||
priv->overlay_scrollbars)
sb_width = 0;
pspec = g_param_spec_enum ("vscrollbar-policy",
"Vertical Scrollbar Policy",
"When the vertical scrollbar is displayed",
- GTK_TYPE_POLICY_TYPE,
- GTK_POLICY_AUTOMATIC,
+ ST_TYPE_POLICY_TYPE,
+ ST_POLICY_AUTOMATIC,
G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_VSCROLLBAR_POLICY, pspec);
pspec = g_param_spec_enum ("hscrollbar-policy",
"Horizontal Scrollbar Policy",
"When the horizontal scrollbar is displayed",
- GTK_TYPE_POLICY_TYPE,
- GTK_POLICY_AUTOMATIC,
+ ST_TYPE_POLICY_TYPE,
+ ST_POLICY_AUTOMATIC,
G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_HSCROLLBAR_POLICY, pspec);
{
StScrollViewPrivate *priv = self->priv = st_scroll_view_get_instance_private (self);
- priv->hscrollbar_policy = GTK_POLICY_AUTOMATIC;
- priv->vscrollbar_policy = GTK_POLICY_AUTOMATIC;
+ priv->hscrollbar_policy = ST_POLICY_AUTOMATIC;
+ priv->vscrollbar_policy = ST_POLICY_AUTOMATIC;
priv->hadjustment = g_object_new (ST_TYPE_ADJUSTMENT, NULL);
priv->hscroll = g_object_new (ST_TYPE_SCROLL_BAR,
*/
void
st_scroll_view_set_policy (StScrollView *scroll,
- GtkPolicyType hscroll,
- GtkPolicyType vscroll)
+ StPolicyType hscroll,
+ StPolicyType vscroll)
{
StScrollViewPrivate *priv;
#define ST_TYPE_SCROLL_VIEW (st_scroll_view_get_type())
G_DECLARE_FINAL_TYPE (StScrollView, st_scroll_view, ST, SCROLL_VIEW, StBin)
+typedef enum
+{
+ ST_POLICY_ALWAYS,
+ ST_POLICY_AUTOMATIC,
+ ST_POLICY_NEVER,
+ ST_POLICY_EXTERNAL,
+} StPolicyType;
+
typedef struct _StScrollViewPrivate StScrollViewPrivate;
/**
gboolean st_scroll_view_get_overlay_scrollbars (StScrollView *scroll);
void st_scroll_view_set_policy (StScrollView *scroll,
- GtkPolicyType hscroll,
- GtkPolicyType vscroll);
+ StPolicyType hscroll,
+ StPolicyType vscroll);
void st_scroll_view_update_fade_effect (StScrollView *scroll,
float vfade_offset,
float hfade_offset);